package com.jsmile.cloud.msgcenter.zf.req.ali;

import java.util.Date;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * @author xiao
 * @since 2021/5/30
 */
@Data
public class AliNotifyResponse<T> {
    @ApiModelProperty(value = "通知校验 ID，唯一标识一笔通知")
    @JSONField(name = "notify_id")
    private String notifyId;

    @ApiModelProperty(value = "通知类型")
    @JSONField(name = "notify_type")
    private String notifyType;

    @ApiModelProperty(value = "通知类型")
    @JSONField(name = "msg_method")
    private String msgMethod;

    @ApiModelProperty(value = "业务状态")
    @JSONField(name = "status")
    private String status;

    @ApiModelProperty(value = "通知发送时间 通知发送时间 UTC+8，格式为yyyy-MM-dd HH:mm:ss。若为其它时区的服务器时间请自行转换")
    @JSONField(name = "notify_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "UTC+8")
    private Date notifyTime;

    @ApiModelProperty(value = "字符集")
    @JSONField(name = "charset")
    private String charset;

    @ApiModelProperty(value = "第三方应用的 APPID")
    @JSONField(name = "app_id")
    private String appId;

    @ApiModelProperty(value = "授权小程序的 APPID")
    @JSONField(name = "auth_app_id")
    private String authAppId;

    @ApiModelProperty(value = "签名")
    @JSONField(name = "sign")
    private String sign;

    @ApiModelProperty(value = "签名类型")
    @JSONField(name = "sign_type")
    private String signType;

    @ApiModelProperty(value = "该笔通知的业务内容")
    @JSONField(name = "biz_content")
    private T bizContent;
}
